开发任务 · Turborepo 中文文档 |
您所在的位置:网站首页 › turbo debug › 开发任务 · Turborepo 中文文档 |
Monorepo中的开发任务 //Development tasks in a Monorepo
绝大多数的开发工作流程都是这样的: 打开一个资源库 在他们开发时运行一个dev任务 在一天结束时,关闭dev任务并关闭版本库dev很可能是你的版本库中最频繁运行的任务,所以把它做好很重要。 dev任务的类型 //Types of dev tasksdev任务有多种形式和规模: 为一个网络应用程序运行一个本地开发服务器 运行nodemon,在每次代码改变时重新运行后端进程 在--watch模式下运行测试 使用Turborepo进行设置 //Setup with Turborepo你应该在你的turbo.json中这样指定你的dev任务。 filename="turbo.json" { "pipeline": { "dev": { "cache": false } } }由于dev任务不产生输出,所以输出是空的。dev任务也很独特,你很少想缓存它们,所以我们把缓存设置为false。 设置package.json //Setting up package.json你也应该在你的根目录package.json中提供一个dev任务 filename="package.json" { "scripts": { "dev": "turbo run dev" } }这使开发人员能够直接从他们的正常任务运行器中运行该任务。 在dev前 运行任务 //Running tasks before dev在某些工作流程中,你想在运行dev任务 之前 运行任务。例如,生成代码或运行db:migrate任务。 在这些情况下,使用 dependsOn 来表示任何 codegen 或 db:migrate 任务应该在 dev 运行 之前 运行。 filename="turbo.json" { "pipeline": { "dev": { "dependsOn": ["codegen", "db:migrate"], "cache": false }, "codegen": { "outputs": ["./codegen-outputs/**"] }, "db:migrate": { "cache": false } } }然后,在你的应用程序的 package.json: filename="apps/web/package.json" { "scripts": { // For example, starting the Next.js dev server "dev": "next", // For example, running a custom code generation task "codegen": "node ./my-codegen-script.js", // For example, using Prisma "db:migrate": "prisma db push" } }这意味着你的dev任务的用户 不需要担心codegen或迁移他们的数据库-在他们的开发服务器开始之前就已经为他们处理了。 只在某些工作区运行dev任务 //Running dev only in certain workspaces要想只在某些工作区运行dev任务,你应该使用--filter语法。比如说: turbo run dev --filter docs只会在名为docs的工作区运行dev。 使用环境变量 //Using environment variables在开发过程中,你经常需要使用环境变量。这些变量可以让你自定义你的程序的行为-例如,在开发和生产中指向一个不同的DATABASE_URL。 我们推荐使用一个叫做dotenv-cli的库来解决这个问题。 我们希望每个开发人员都能有一个很好的使用Turbo的体验。下面记录的方法并不符合这些标准。 我们正在为这个问题开发一个一流的解决方案 - 但在你等待的时候,这里有一个次好的解决方案。 Tutorial 在你的根工作区root workspace安装dotenv-cliInstall: npm # Installs dotenv-cli in the root workspace npm add dotenv-cli yarn # Installs dotenv-cli in the root workspace yarn add dotenv-cli --ignore-workspace-root-check pnpm # Installs dotenv-cli in the root workspace pnpm add dotenv-cli --ignore-workspace-root-check 在你的根工作区添加一个.env文件: ├── apps/ ├── packages/ + ├── .env ├── package.json └── turbo.json添加任何你需要注入的环境变量: filename=".env" DATABASE_URL=my-database-url 在你的根目录package.json中,添加一个dev脚本。用dotenv和--参数分隔符作为它的前缀: { "scripts": { "dev": "dotenv -- turbo run dev" } }这将在运行turbo run dev之前从.env中提取环境变量。 现在,你可以运行你的dev脚本: npm npm run dev yarn yarn dev pnpm pnpm dev而你的环境变量将被填充!在Node.js中,这些都可以在process.env.DATABASE_URL上找到。 如果你使用环境变量来构建你的应用程序,你也应该把你的环境变量添加到你的turbo.json中。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |